package top.zhangjianyong.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.zhangjianyong.blog.entity.po.User;
import top.zhangjianyong.blog.params.user.*;
import top.zhangjianyong.blog.response.ApiResponse;

/**
 * 用户Service
 *
 * @author zhangjianyong
 * @since 2024/7/19 下午1:31
 */
public interface UserService extends IService<User> {
  User queryByUsername(String username);

  ApiResponse login(LoginParam param);

  ApiResponse passwordChange(PasswordChangeParam param);

  ApiResponse page(UserPageParam param);

  ApiResponse remove(UserDeleteParam param);

  ApiResponse saveOrUpdate(UserSaveOrUpdateParam param);

  ApiResponse roles(UserRolesParam param);

  ApiResponse update(UserRolesUpdateParam param);

  ApiResponse avatarUpload(AvatarUploadParam param);

  ApiResponse passwordReset(PasswordResetParam param);

  ApiResponse update(UserUpdateParam param);

  ApiResponse gitUpdate(UserGitUpdateParam param);

  ApiResponse logout(LogoutParam param);

  ApiResponse menu(UserMenuParam param);

  ApiResponse get(UserGetParam param);

  ApiResponse getUserInfo(UserGetParam param);

  ApiResponse check(UserCheckParam param);
}
